//
// Created by wkm on 2024-04-25.
//

#ifndef AES128CHIPSYSTEMC_AES128_DRIVER_H
#define AES128CHIPSYSTEMC_AES128_DRIVER_H

#include "../core_module/CONSTANT.h"

SC_MODULE(aes128_driver) {
    sc_in<bool> d_clk;
    sc_out<bool> d_reset, d_start;
    sc_out<sc_uint<DATA_SIZE>> d_key1, d_key2, d_key3, d_key4, d_key5, d_key6, d_key7, d_key8,
            d_key9, d_key10, d_key11, d_key12, d_key13, d_key14, d_key15, d_key16;
    sc_out<sc_uint<DATA_SIZE>> d_pt1, d_pt2, d_pt3, d_pt4, d_pt5, d_pt6, d_pt7, d_pt8,
            d_pt9, d_pt10, d_pt11, d_pt12, d_pt13, d_pt14, d_pt15, d_pt16;

    void prc_aes128_driver();

    SC_CTOR(aes128_driver) {
        SC_THREAD(prc_aes128_driver);
        sensitive_pos << d_clk;
    }

};

#endif //AES128CHIPSYSTEMC_AES128_DRIVER_H
